home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / grafik / 3d & render tools / irit / www / home / update.new < prev    next >
Text File  |  1996-07-16  |  16KB  |  329 lines

  1. Version 6.0
  2. -----------
  3. * Periodic Bspline interpolation is now supported.
  4. * Documentation can now be shown as man/html www pages.
  5. * u/v_resolution for polygonization of freeform surfaces.
  6. * dat2irit now supports attributes.
  7. * A new irit2hgl tool - irit 2 hpgl plotter language filter.
  8. * A new irender tool - a quite powerful scan conversion based rendering
  9.   tool.
  10. * Some display devices allows rotation and translation by click and drag in
  11.   the view window.
  12. * Fix a significant memory leak in the parser that was also manifested
  13.   as a bug in functions.
  14. * Have a while clause as well as for loop clause
  15. * Adding a missing "hither" keyword to irit2nff.
  16. * More overloaded operators:
  17.   Vector * Curve -> inner product projection (result is a scalar curve)
  18.   Vector * Surface -> inner product projection (result is a scalar surface)
  19. * Support for polygonization of trimmed surfaces. Not the best, but useful.
  20. * New -B flag for irit2ps - clipping for the drawing window.
  21. * SDIVIDE, SEVAL, STANGENT, SNORMAL has been modified to support
  22.   trimmed surfaces as well.
  23. * Proper initial auto scale to all display devices and proper top/side/up
  24.   views.
  25. * Improved animation interface in the motif based display devices.
  26. * Fix a bug in the curve curve composition code.
  27. * EVOLUTE now compute evolute for curves and mean curvature based evolute
  28.   for surfaces.
  29. * New IRIT commands
  30.   + FFSPLIT, FFMERGE - splits and merges arbitrary curves and surfaces into
  31.        a list of scalar curves/surfaces.
  32.   + FFPTTYPE - an accessor that returns the type of a freeform.
  33.   + CNORMAL, CNRMLCRV - normal and normal curve for freeform curves.
  34.   + DSTPTLN, DSTPTPLN, DSTLNLN - distance between point, lines, planes.
  35.   + PLN3PTS - plane definition using three points.
  36.   + PTPTLN, PTLNPLN, PTSLNLN - point of intersection or closest point(s)
  37.            of points, lines, and planes.
  38.   + PT3BARY - barycentric coordinates in a triangle.
  39.   + TEXTGEOM - converts text into displayable geometry.
  40.   + AWIDTH, ADWIDTH - width and display width attributes.
  41.   + FFMATCH - computes matching between freeform curves.
  42.   + SGAUSS - computes a scalar field with the gaussian curvature.
  43.   + SFOCAL - computes focal surface using normal curvature in isoparametric
  44.        directions.
  45.   + SMEANSQR - symbolic computation of mean curvature square field.
  46.   + HERMITE supports cubic hermite construction for curves and surfaces.
  47.   + ROTVEC - rotate around a given vector transformation.
  48.   + ROTZ2V2, ROTZ2V2 - rotate vector to the Z axis transformation.
  49.   + TFROMSRFS to construct a trivariate from a list of surfaces.
  50.   + FLOOR, FMOD, POWER math functions.
  51.   + MOFFSET - yet another offset of crvs using curve's matching (see FFMATCH).
  52.   + SRINTER - surface ray intersector.
  53.   + CONTOUR - slice scalar fields as well as regular surfaces.
  54.  
  55. * Fix the way illustrt (miss) treated control points.
  56.  
  57. Version 5.0
  58. -----------
  59. * Animation curves and support of animation in all display devices.
  60. * Many new flags to the display device (as well as new display devices).
  61. * New constants for DEPTH (for trivariates), TRIMSRF_TYPE, TRIVAR_TYPE.
  62. * Format of OFFSET and AOFFSET is slightly modified.
  63. * LOGFILE can change files during IRIT session allowing for writing data
  64.   files on the fly.
  65. * ECHOSRC/DUMPLVL variables were replaced with EchoSource and DumpLevel
  66.   IRITSTATE options.
  67. * PAUSE was renamed into a macro.
  68. * Figures in user manual!
  69. * Programmer's manual (actually more like a reference programmer's manual).
  70. * Periodic curves/surfaces are supported.
  71. * any object with prefix of VIEW_MAT/PRSP_MAT is recognized as these
  72.   important matrices. A complete match used to be required in the past.
  73. * COPLANAR, INTERCRV, and POLYSORT are retired as variables and are now
  74.   set via IRITSTATE.
  75. * New filter dat2bin to convert between text and binary data files.
  76. * New filter irit2iv - irit to SGI's Inventor ascii format.
  77. * The config package prints the command line flags on all tools. New
  78.   config file to illustrt.
  79. * Created a symbolic lib out of cagd lib to hold all symbolic computation.
  80. * Add adaptive routines to subdivide a surface into polygons. The whole
  81.   scheme of srf->polygons was changed accordingly.
  82. * Fix a bug in printing of data in +/-xxx+/-Eyyy format.
  83. * Add "IllustrtNoProcess", "SpeedWave, and "HeatWave" attributes to
  84.   objects in input stream of illustrt.
  85. * Fix a minor bug in irit help document generator in math formulas.
  86. * Fix a minor bug that introduces a return variable from user defined
  87.   functions. Also add debug of user defined functions via IRITSTATE.
  88. * Fix a loop in the list structure when one does "obj = list(obj, obj2);"
  89. * New IRIT commands
  90.   + C/SREPARAM - affine reparametrization of curves and surfaces.
  91.   + PCIRCLE - A polynomial curve approximation of circle.
  92.   + SCRVTR - curvature bounds for surfaces.
  93.   + COERCE - has added semantics for E1/P1 coercetion to E2/P2 for curves and
  94.     to E3/P3 for surfaces.
  95.   + SURFPREV - a polynomial approximation of surface of revolution.
  96.   + IRITSTATE - a unified state modification routine.
  97.   + GPOLYLINE/GPOLYGON are slightly modified with more options.
  98.   + CEVOLUTE - exact computation and rep. of an evolute of a curve.
  99.   + GETLINE - read stdin and construct proper objects from it.
  100.   + LOFFSET - another offset variation.
  101.   + FFEXTREME - Comutes extreme values of curves and surfaces.
  102.   + ERROR function - Error abort functions to be used from user defined funcs.
  103.   + MSLEEP function - millisconed sleep function.
  104.   + CMULTIRES function - Least squares multiresolution decomposition of curves.
  105.   + CMORPH function - curve morphing.
  106.   + RANDOM function - random values function.
  107.   + New format to OFFSET and AOFFSET.
  108.   + PDOMAIN supports trimmed surfaces and trivariates.
  109.   + TRIMSRF constructs a trimmed surface.
  110.   + CTRIMSRF extracts trimming curves from trimmed surfaces.
  111.   + STRIMSRF extracts the surface of a trimmed surface.
  112.   + STRIVAR extracts a surface from a trivariate function.
  113.   + TBEZIER constructs a trivariate Bezier function.
  114.   + TBSPLINE constructs a trivariate Bspline function.
  115.   + TDERIVE differentiates a trivariate function.
  116.   + TEVAL evaluates a trivariate function.
  117.   + TREFINE refines a trivariate function.
  118.   + TREGION extracts a region out of a trivariate function.
  119.   + TDIVIDE subdivides a trivariate function.
  120.   + C/S/TINTERP - a new Bspline interpolation/least squares approximation for
  121.     curves, surfaces, and trivariates.
  122.   + CLNTEXEC/CLNTREAD/CLNTWRITE/CLNTCLOSE - set of routines to communicate
  123.     with several clients. See clients.irt.
  124.   + MOMENT - compute moments of curves.
  125. * Fix a minor bug of profiling an E2 curve with E3 point.
  126. * LISTSIZE was renamed into SIZEOF and supports lists/polys/curves ctlpolys.
  127.   Surface ctl mesh is supported via MESHSIZE.
  128. * SWEEPSRF is split into SWEEPSRF and SWPSCLSRF with more functionality
  129.   and the elimination of the torus bug.
  130. * More overloaded operators:
  131.   CtlPt * Matrix -> CtlPt
  132.   Overloaded unary '-' on a list object reverses the list object.
  133. * Transformations of CtlPt works as it should.
  134. * Surfaces/Curves/Profiling can have different ctl points or even regular
  135.   points.
  136. * rmattr can now remove attributes created by attrib. Objects can be
  137.   attributes as well.
  138. * Objects are read in the proper order - same order as input stream.
  139.  
  140. Version 4.0
  141. -----------
  142.  
  143. * New -H flag to poly3d-h to allow dumping the HIDDEN data (with different
  144.   color/attributes...), -q to run quietly, -o for output file.
  145.  
  146. * If clause was made much more reasonable by defining comparison and
  147.   Logical operators (<, >=, &&, ||, etc.).
  148.  
  149. * Function definition is available (ALIAS is retired). See function/procedure
  150.   in docs and function.irt. See plotter.irt for a nontrivial example.
  151.  
  152. * Assignments need not be within parenthesis any more. Preceding is
  153.   properly set now.
  154.  
  155. * New variables are allowed in loops now.
  156.  
  157. * MSDOS is not really supported (I left DJGCC ifdefs intact although it is
  158.   not tested any more.). EDIT command retired, SYSTEM command modified.
  159.   The main reason is that IRIT can no longer be built in the BC Large model
  160.   and the Huge model will consume pretty much the entire 640k...
  161.   If you have the ability (I do not) to build MSDOS applications with dos
  162.   extenders, and willing to dive in, please let me know.
  163.  
  164. * The good news is that both OS2 2.x and Window NT 3.1 are fully supported.
  165.  
  166. * A whole new scheme of display drivers was developed. The display driver is
  167.   a different process. As a result NORMAL, VIEW & INTERACT, BEEP, CLOSED
  168.   functions are retired, and VIEWOBJ controls the display via VIEWxxxx user
  169.   defined functions (in iritinit.irt).
  170.     BEEP, VIEW and INTERACT functions are emulated in iritinit using a
  171.   user defined function. NORMALs as well as other view states can be set via
  172.   user defined function VIEWSTATE.
  173.     poly3d was retired and is replaced by the display drivers which 
  174.   accepts command lines. In other words, the graphics device driver serves as
  175.   display program as well.
  176.  
  177. * Sweep has a new fourth parameter to allow setting normal of orientation
  178.   (pseudo frenet) frame.
  179.  
  180. * New line illustration tool - illustrt.
  181.  
  182. * Lists can now be in any length and are updated dynamically.
  183.  
  184. * Attributes now can handle spaces by quoting the data:
  185.   attrib( obj, "rgbcolor", "255 0 255" );
  186.   see attrib command for more.
  187.  
  188. * New filter irit2xfg - IRIT to xfig.
  189. * New filter irit2plg - IRIT to REND386 polygonal format
  190. * New filter irit2scn - IRIT to scn (close to nff format).
  191. * New filter irit2dxf - filters to/from DXF. Not fully functional.
  192. * New filter dxf2irit
  193. * New filter irit2ps  - more versatile filter to PostScript.
  194. * New IRIT commands
  195.   + THISOBJ - returns the type of the object.
  196.   + PRINTF - a formatted printing routine, C printf style.
  197.   + BOOLONE - using a single closed curve subdivided into four segments
  198.                             as bool sum input.
  199.   + BSP2BZR - convertion from Bspline to Bezier curves/surfaces.
  200.   + BZR2BSP - convertion from Bezier to Bspline curves/surfaces.
  201.   + FFCOMPAT - making two curves/surfaces compatible (required for
  202.                             SMORPH morphing code)
  203.   + HOMOMAT - low level homogeneous matrix constructor.
  204.   + SDERIVE/CDERIVE - compute derivatives.
  205.   + SMERGE - merge two surfaces into one.
  206.   + SMORPH - A convex blend between two compatible surfaces (3d morphing).
  207.   + SNRMLSRF - surface normal.
  208.   + SYMBPROD/SYMBDPROD/SYMBCPROD/SYMBSUM/SYMBDIFF - a whole set of
  209.                              symbolic computation tools.
  210.   + CZEROS - find the zero set of a curve.
  211.   + CEXTREMES - find the extreme set of a curve.
  212.   + NIL - returns an empty list.
  213.   + LISTSIZE - returns the size of a list/poly list/vertex list.
  214.   + COORD - extract a single coordinate from an object.
  215.   + AOFFSET - adaptive, error bounded, offset (slow!).
  216.   + COERCE - coercion of objects.
  217.   + COMPOSE - curve curve and surface curve symbolic composition.
  218.   + PRISA - planar layout of surfaces.
  219.   + CINFLECT - find the inflection points of a curve.
  220.   + CCRVTR - curvature properties of curves.
  221.   + CCINTER - curve curve intersection function.
  222.   + POLY - can accept point and ctlpt types. Has a new second polyline/gon
  223.                                    parameter.
  224.   + ADAPISO - adaptive isocurve extraction.
  225.   + CRVPTDST - nearest point on a curve to a point solution (min dist param).
  226.   + CRVLNDST - nearest point on a curve to a line solution (min dist param).
  227.   + PDOMAIN - returns the parametric domain of a curve or a surface.
  228.  
  229. * Ability to dump UV values of vertices of polygons created from freeform
  230.   surfaces (mainly for 2D texture mapping). See CagdSrf2Polygons and skeleton
  231.   example in iritfltr directory.
  232.  
  233. * ATTRIButes can be set to any object, not just geometry. attributes names
  234.   are case insensetive. 
  235.  
  236. * POINTs and PLANEs are now supported objects as well. VECTORs, POINTs,
  237.   CTLPTs are also displayable objects.
  238.  
  239. * color() and attrib() now can work on lists, in which all elements
  240.   in list will be appropriately updated.
  241.  
  242. * More overloaded operators:
  243.   String + String -> String
  244.   String ^ Real -> String
  245.   String + Real -> String
  246.   Point  + Vector -> Vector
  247.   Point  * Real -> Point (Scale)
  248.   Point  * Mat -> Point (Transform)
  249.   -Point -> Point (scale by -1)
  250.   -Plane -> Plane (scale by -1)
  251.  
  252. * New irit configuration variable - FloatFrmt.
  253.  
  254. * New prsp_mat variable.
  255.  
  256. * Coplanar polygons are now handled. See coplanar variable and solid2.irt
  257.   for example.
  258.  
  259. * Boolean opeartions are almost three times faster using bbox and sorting
  260.   optimizations! See polysort variable.
  261.  
  262. * All utilities now support '-' for stdin read. Under unix, compressed data
  263.   is properly handled (via fork of compress and zcat). For example
  264.   poly3d-h example.dat.Z | irit2ps - > example.ps
  265.  
  266. * Spline degree raising is implemented using the new symbolic tools.
  267.  
  268. Here is what is new in version 3.0:
  269. -----------------------------------
  270. 1. Normals are fully supported now. Although this increases memory requirements
  271.    (mainly a problem on IBM PC) all files dumped from IRIT now support normals
  272.    as well.
  273. 2. A new cut Boolean operation (overloading '/', i.e. C = A / B assigns to C
  274.    the regions in A out B).
  275.    A new merge Boolean operation (overloading '^', i.e. C = A ^ B assigns to
  276.    C all polygons of A and B merged (with no intersection tests.).
  277. 3. Support for freeform curves and surfaces (Bezier/NURBS).
  278.    All Boolean are still done using polygonal data the surfaces are converted
  279.    into (No intention to change that in the near future - direct Booleans on
  280.    surfaces requires support of trimmed surfaces and believe me - it is HARD).
  281.    However, quite a few tools to manipulate and maintain the curves and surfaces
  282.    are provided and include:
  283.    a. direct creation of curves and surfaces by specifying control mesh/poly.
  284.    b. evaluation of surface/curve, tangents, normals.
  285.    c. subdivision/refinement.
  286.    d. degree raising (only Bezier).
  287.    e. high level surface creation: ruled srf/extrude/srf of revolution/sweep.
  288.    f. curve constructor out of curve/point pieces.
  289.    g. conversion to polygons of surfaces including normals.
  290. 4. Support for SGI 4D systems using gl has been added.
  291. 5. lists are much more enhanced now and more functions can now get a list
  292.    of objects where before they could get a single object only (for example
  293.    ability to dump to file/read from file list of objects instead of one).
  294.    This enable merging the *.ply and *.mat into single data files *.dat which
  295.    also include the freeform data (curves and surfaces).
  296. 6. Ability to handle closed and open loops within the same polygon (see
  297.    cubes.irt).
  298. 7. Much improved documentation.
  299. 8. Significant improvement in time of polygonal Boolean operations.
  300. 9. Two new variables COPLANAR and POLYSORT.
  301. 10. B&W X11 support added ( petern@bion.kth.se  (Peter Nordlund) ).
  302.  
  303. Version 2.1
  304. -----------
  305. 1. Fix problem with Extrude (used to update wrong plane normal), which
  306.    cuased problems in boolean operations.
  307. 2. Fix boolean operations causing INTERNAL edges been visible.
  308. 3. Fix major memory leak problem (upto %50 less memory usage).
  309.  
  310. Version 2.0
  311. -----------
  312. 1. Program has been ported to unix environment using X11 window system.
  313.    Has been compiled using:
  314.    a. BSD 4.3 using gcc (gnu cc) compiler.
  315.    b. SGI 4d, Irix3.2, using cc.
  316. 2. Minor fix in VGA mode.
  317. 3. Ability to dump intersection curves instead of the model in geometry
  318.    boolean operation, has been added and is controled via a new variable
  319.    named INTERCRV.
  320. 4. Fix severe bug in the convex decomposition (wheel.irt used to be severely
  321.    wrong, o.k. now).
  322.  
  323. Version 1.1
  324. -----------
  325. 1. Full line editing for input line (see irit.doc), including last command
  326.    retrieve.
  327. 2. EGA/VGA display device is finally supported.
  328. 3. Faster and smaller allocator makes more space and run faster.
  329.